package cn.edu.tsinghua.cic.ccss.dto;

import org.forten.core.dto.GeneralDto;

public class CourseTotalStatisticsDto implements GeneralDto{

	/**
	 * 
	 */
	private static final long serialVersionUID = -2488180221090733421L;
	
	private long totalCourseNum;
	private long totalCreditNum;
	private long totalStuNum;
	private long totalActualStuNum;
	private long totalChosenCreditNum;
	private long totalActualChoseCreditNum;
	public long getTotalCourseNum() {
		return totalCourseNum;
	}
	/**
	 * 设置总课数目
	 * */
	public void setTotalCourseNum(long totalCourseNum) {
		this.totalCourseNum = totalCourseNum;
	}
	public long getTotalCreditNum() {
		return totalCreditNum;
	}
	/**
	 * 设置总学时数
	 * */
	public void setTotalCreditNum(long totalCreditNum) {
		this.totalCreditNum = totalCreditNum;
	}
	public long getTotalStuNum() {
		return totalStuNum;
	}
	/**
	 * 设置总学生数（包含退课）
	 * */
	public void setTotalStuNum(long totalStuNum) {
		this.totalStuNum = totalStuNum;
	}
	public long getTotalActualStuNum() {
		return totalActualStuNum;
	}
	/**
	 * 设置总实际学生数
	 * */
	public void setTotalActualStuNum(long totalActualStuNum) {
		this.totalActualStuNum = totalActualStuNum;
	}
	public long getTotalChosenCreditNum() {
		return totalChosenCreditNum;
	}
	/**
	 * 设置已选总学时数
	 * */
	public void setTotalChosenCreditNum(long totalChosenCreditNum) {
		this.totalChosenCreditNum = totalChosenCreditNum;
	}
	public long getTotalActualChoseCreditNum() {
		return totalActualChoseCreditNum;
	}
	/**
	 * 设置实际出勤所占总学时数
	 * */
	public void setTotalActualChoseCreditNum(long totalActualChoseCreditNum) {
		this.totalActualChoseCreditNum = totalActualChoseCreditNum;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime
				* result
				+ (int) (totalActualChoseCreditNum ^ (totalActualChoseCreditNum >>> 32));
		result = prime * result
				+ (int) (totalActualStuNum ^ (totalActualStuNum >>> 32));
		result = prime * result
				+ (int) (totalChosenCreditNum ^ (totalChosenCreditNum >>> 32));
		result = prime * result
				+ (int) (totalCourseNum ^ (totalCourseNum >>> 32));
		result = prime * result
				+ (int) (totalCreditNum ^ (totalCreditNum >>> 32));
		result = prime * result + (int) (totalStuNum ^ (totalStuNum >>> 32));
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		CourseTotalStatisticsDto other = (CourseTotalStatisticsDto) obj;
		if (totalActualChoseCreditNum != other.totalActualChoseCreditNum)
			return false;
		if (totalActualStuNum != other.totalActualStuNum)
			return false;
		if (totalChosenCreditNum != other.totalChosenCreditNum)
			return false;
		if (totalCourseNum != other.totalCourseNum)
			return false;
		if (totalCreditNum != other.totalCreditNum)
			return false;
		if (totalStuNum != other.totalStuNum)
			return false;
		return true;
	}
	@Override
	public String toString() {
		return "CourseTotalStatisticsDto [totalCourseNum=" + totalCourseNum
				+ ", totalCreditNum=" + totalCreditNum + ", totalStuNum="
				+ totalStuNum + ", totalActualStuNum=" + totalActualStuNum
				+ ", totalChosenCreditNum=" + totalChosenCreditNum
				+ ", totalActualChoseCreditNum=" + totalActualChoseCreditNum
				+ "]";
	}
	
	
}
